#ifndef YafridngNodeManager_H
#define YafridngNodeManager_H

#include <Ice/Ice.h>
#include <YafridngRendererFactoryI.h>
#include <Yafridng.h>

typedef struct{
  bool available;
  YafridngRendererFactoryPrx factory;
}NodeInfo;

class YafridngNodeManagerI : public YafridngNodeManager, public IceUtil::Mutex
{
 public:
  virtual void addNode(const ::Yafridng::YafridngRendererFactoryPrx& factory,
		       const Ice::Current&);

  virtual ::Yafridng::YafridngRendererFactoryPrx allocateNode(const Ice::Current&);
  virtual void releaseNode(const ::Yafridng::YafridngRendererFactoryPrx& factory,
			   const Ice::Current&);
 private:
  vector<NodeInfo> factories;
};

#endif
